# x = 500
# x_float = float(x)
# x_float /= 1024
# print(f"{x_float:.2f} KB")


def format_file_size(size_in_bytes):
    """
    将字节数格式化为人类可读的字符串 (使用二进制前缀 KiB, MiB 等)

    参数:
        size_in_bytes: 文件大小（字节）
    返回:
        格式化后的字符串
    """
    # 定义单位阶梯
    units = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB']
    size = float(size_in_bytes)
    index = 0

    # 循环除以1024，直到找到合适的单位
    while size >= 1024 and index < len(units) - 1:
        size /= 1024.0
        index += 1
        print(f"index111={index}, unit={units[index]}")

    # 格式化输出，保留2位小数
    return f"{size:.2f} {units[index]}"


# 测试不同大小的文件
file_sizes = [
    500,  # 500 字节
    1536,  # 1.5 KiB
    1048576,  # 1 MiB
    3221225472,  # 3 GiB
    1099511627776  # 1 TiB
]

print("文件大小转换示例：")
for size in file_sizes:
    print(f"{size:>15} 字节 = {format_file_size(size)}")

# 输出：
#             500 字节 = 500.00 B
#            1536 字节 = 1.50 KiB
#         1048576 字节 = 1.00 MiB
#      3221225472 字节 = 3.00 GiB
#   1099511627776 字节 = 1.00 TiB